草庐IT

Java for 循环性能

全部标签

c# - 最简单的性能计数器示例

启动和运行性能计数器所需的最少C#代码量是多少?我只想测量代码中两点之间的CPU周期数和/或时间。我已经浏览了网络上所有的华夫饼,但似乎比这样一个微不足道的任务所需的代码要多得多。我只想快速启动并运行测量,并更加专注于我正在做的事情。 最佳答案 我认为您不需要性能计数器。您需要的时间不只是可以从StopWatch获得的时间吗??它非常准确。Stopwatchwatch=Stopwatch.StartNew();//Doworkwatch.Stop();//elapsedtimeisinwatch.Elapsed但是,要回答你实际提出

c# - 在 C# 下,try、throw 和 catch block 对性能的影响有多大

首先声明:我有使用其他语言的经验,但仍在学习C#的精妙之处关于问题...我正在查看一些代码,它以我关心的方式使用try/catchblock。当调用解析例程时,程序员没有返回错误代码,而是使用了以下逻辑catch(TclExceptione){thrownewTclRuntimeError("unexpectedTclException:"+e.Message,e);}这被调用者捕获,抛出相同的错误......被调用者捕获,抛出相同的错误........被调用者捕获,抛出相同的错误......备份大约6个级别。我是否认为所有这些catch/throwblock都导致了性能问题,或者这是

c# - 为什么 'using' 提高了 C# 性能

在大多数情况下,C#编译器似乎可以自动调用Dispose()。像大多数using模式的情况一样:publicvoidSomeMethod(){...using(varfoo=newFoo()){...}//Fooisn'tuseafterhere(obviously)....}因为foo没有被使用(这是一个非常简单的检测)并且因为它没有作为参数提供给另一个方法(这是一个适用于许多用例并且可以扩展的假设),编译器可以自动并立即调用Dispose(),而无需开发人员要求。这意味着在大多数情况下,如果编译器做了一些聪明的工作,using就毫无用处。IDisposable对我来说似乎低级足以被

c# - PLINQ 的性能比通常的 LINQ 差

令人惊讶的是,使用PLINQ并没有在我创建的一个小测试用例上产生好处;事实上,它比通常的LINQ还要糟糕。测试代码如下:intrepeatedCount=10000000;privatevoidbutton1_Click(objectsender,EventArgse){varcurrTime=DateTime.Now;varstrList=Enumerable.Repeat(10,repeatedCount);varresult=strList.AsParallel().Sum();varcurrTime2=DateTime.Now;textBox1.Text=(currTime2.

c# - 在 C# 中使用多线程加速循环(问题)

假设我有一个函数,它遍历一百万/十亿个字符串并检查其中的某些内容。例如:foreach(StringiteminListOfStrings){result.add(CalculateSmth(item));}它会消耗很多时间,因为CalculateSmth是一个非常耗时的函数。我想问一下:这种进程怎么集成多线程?f.ex:我想启动5个线程,每个线程都返回一些结果,这样一直持续到列表有项目为止。也许任何人都可以展示一些示例或文章..忘了说我在.NET2.0中需要它 最佳答案 你可以试试Parallelextensions(.NET4.

c# - For循环计算阶乘

目前我有这组代码,它用于计算阶乘。intnumberInt=int.Parse(factorialNumberTextBox.Text);for(inti=1;i出于某种原因,它不起作用,我也不知道为什么。例如,我将输入3并得到-458131456的答案,这看起来很奇怪。感谢任何帮助。谢谢 最佳答案 intnumberInt=int.Parse(factorialNumberTextBox.Text);intresult=numberInt;for(inti=1;i旁注:这通常不是计算阶乘的正确方法。在开始计算之前,您需要检查输入,

c# - EF 4.0 中看似无限的堆栈跟踪和负载下的查询性能不佳

在大型EF4.0模型(700多个实体)上,我们在System.Data.Objects.ObjectContext.CreateObjectSet(string)上的性能很差。对此的调用由类似context.Users.FirstOrDefault(u=>u.userId=100)的查询触发。查询总体上表现良好,但在负载下查询表现不佳。我们正在对使用此查询的页面运行20个并发用户负载。此页面的应用程序处于分析模式下,即我们在运行此小型负载测试时使用VisualStudio2010性能分析器。探查器正在使用“采样”模式。该应用程序是使用ASP.NET4.0/ASP.NETMVC3.0构建

c# - 如何使用 Windows 性能分析器查看 EventSource 创建的 ETW 事件?

我想使用EventSource触发ETW事件并使用WindowsPerformanceAnalyzer查看它们。我有一个基本的EventSource:[EventSource(Name="BasicEventSource")]publicclassETWLogger:EventSource{#ifDEBUGprivateconstboolThrowOnError=true;#elseprivateconstboolThrowOnError=false;#endifprivateETWLogger(boolthrowOnError):base(throwOnError){}private

c# - 无限循环使 TimeManager 无效

我在我的WPF应用程序中遇到了一个非常棘手的缺陷,需要追踪。错误信息是:AninfiniteloopappearstohaveresultedfromrepeatedlyinvalidatingtheTimeManagerduringtheLayout/Renderprocess.堆栈跟踪(它的值(value))是:atSystem.Windows.Media.MediaContext.RenderMessageHandlerCore(ObjectresizedCompositionTarget)atSystem.Windows.Media.MediaContext.RenderMes

c# - 当前进程的性能计数器 CPU 使用率超过 100

我想显示我的多线程应用程序(在多核处理器上工作)的CPU使用情况。我想收到接近任务管理器的号码。但我得到的数字超过100%。甚至超过500%。是的,我知道,对于类别"Process"的计数器"%ProcessorTime"我需要划分为Environment.ProcessorCount或“NumberOfLogicalProcessors”(与我的配置相同)。而500%是此操作之后的结果。我在具有不同硬件(i7、i5、Core2)和软件配置(具有所有更新的Windows7SP1、具有所有更新的Windows2008R2SP1)的不同计算机上测试了这个示例,但遇到了同样的问题。publi